1. Field of the Invention
The present invention relates to digital image and video processing. More specifically, the present invention relates to methods of scaling images with controllable sharpness to reduce blurring, grain effects, and saw tooth effects.
2. Discussion of Related Art
Due to advancing semiconductor processing technology, integrated circuits (ICs) have greatly increased in functionality and complexity. With increasing processing and memory capabilities, many formerly analog tasks are being performed digitally. For example, many digital display systems, such as Liquid Crystal Displays (LCDs), micro mirror systems, and plasma displays, are being used in place of analog television sets. These digital display systems have a set number of pixels, i.e. the native display resolution. For example, large screen LCDs may have a native resolution as high as 1920×1080 pixels. However small portable digital display system may have native display resolution as low as 320×200 pixels.
Various video formats have different resolutions. For example, NTSC resolution is 720×480, PAL resolution is 720×576, HDTV standards include 1920×1080, 1280×720, and 640×480, etc. To correctly display a video signal, the digital display system must resize the images of the video signal for the native display resolution. For example as illustrated in FIG. 1, an image 110 is scaled up (i.e. enlarged) for a large display 120. Conversely as illustrated in FIG. 2, image 110 is scaled down (i.e. reduced) for a small display 220.
In the scaling process each pixel of the scaled image is generated by determining a corresponding position in the original image and generating values for the pixel of the scaled image based on the pixels of the original image near the corresponding position. For example as illustrated in FIG. 3, pixel 321 in scaled image 320 corresponds to a corresponding position 321b that is located between pixels 311, 312, 313, and 314 of original image 310. Some conventional scalers calculate pixel values, e.g. luminance, U chrominance, and V chrominance values in YUV format, for pixel 321 by copying the corresponding values of the pixel in original image 310 that is nearest to corresponding position 321b. Other conventional scalers use bi-linear interpolation based on the values of the 4 pixels nearest corresponding position 321b, i.e., pixels 311, 312, 313, and 314. Other pixel formats could also be used such as RGB. For clarity, the present invention is described using YUV format, however one skilled in the art can easily adapt the teachings presented herein for other pixel formats.
The corresponding position to a pixel of the scaled image can be calculated using the location of the pixel in the scaled image and a horizontal scaling factor HSF and a vertical scaling factor VSF. The scaling factors are based on the relative dimensions of original image to the scaled image. For clarity, the examples described herein use an original image having I pixels in each row and J pixels in each column. The scaled image has X pixels in each row and Y pixels in each column. A pixel P(x, y) in the scaled image is the pixel in the x-th column, and y-th row of the scaled image, where pixel P(0,0) is the top left pixel and pixel P(X−1, Y−1) is the bottom right pixel of the scaled image. Horizontal scaling factor HSF is equal to the horizontal dimension of the original image (in pixels) minus one divided by the horizontal dimension of the scaled image (in pixels) minus one, i.e. HSF=(I−1)/(X−1). However, many systems simplify the calculation of horizontal scaling factor HSF by using the horizontal dimension of the original image (in pixels) divided by the horizontal dimension of the scaled image, i.e. HSF=I/X. Similarly, vertical scaling factor VSF is equal to the vertical dimension of the original image (in pixels) minus one divided by the vertical dimension of the scaled image (in pixels) minus one, i.e. VSF=(J−1)/(Y−1). However, many systems simplify the calculation of vertical scaling factor VSF by using the vertical dimension of the original image (in pixels) divided by the vertical dimension of the scaled image, i.e. VSF=J/Y.
The corresponding position of pixel P(x, y) is defined with a horizontal position HP(x) and a vertical position VP(y). Horizontal position HP(x) is equal to x multiplied by horizontal scaling factor HSF (i.e., HP(x)=x*HSF). Vertical position VP(y) is equal to y multiplied by vertical scaling factor VSF (i.e., VP(y)=y*VSF).
As digital displays become larger, flaws of conventional scalers become magnified. For example, images that are scaled up (enlarged) become blurred because individual pixel values from the original image are combined to form the scaled image. Thus, the effect of scaling up an image has the effect of applying a low-pass filter to the image, which reduces the sharpness of the scaled image as compared to the original image. In zero-th order scalers, blurring is not as prevalent, however blockiness in the scaled image becomes a problem. The blockiness is caused by copying a single pixel of the original image to multiple adjacent pixels in the scaled image.
Another flaw of conventional scalers is saw tooth artifacts along diagonal lines in a scaled-up image. Theoretically, saw tooth artifacts are present along diagonal lines in all digital images due to finite resolution. Normally, the saw tooth artifacts are not visible in high-resolution images. However, when an image is scaled up, the values of the pixels in the original image are used to calculate multiple pixels in the scaled image, which may enlarge the saw tooth artifacts.
Scaling down of images also produces flaws in the scaled image. For examples scaling down (i.e. reducing) an image may produce a scaled image that is grainy. Specifically, scaling down has the effect of applying a high-pass filter to an image, which would emphasize rapid transitions within an image, which results in a grainy image.
Hence, there is a need for a method or system that can efficiently scale an image without the flaws of conventional scalers that may produce saw toothed, blurry, blocky, or grainy scaled images.